package com.roger.tool.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import com.roger.tool.SGLog;

public class SGUtils {

	/**
	 * 生成随机数字和字母组合
	 * 
	 * @param length
	 *            [生成随机数的长度]
	 * @return
	 */
	public static String getCharAndNumr(int length) {
		String val = "";
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			// 输出字母还是数字
			String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
			// 字符串
			if ("char".equalsIgnoreCase(charOrNum)) {
				// 取得大写字母还是小写字母
				int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
				val += (char) (choice + random.nextInt(26));
			} else if ("num".equalsIgnoreCase(charOrNum)) { // 数字
				val += String.valueOf(random.nextInt(10));
			}
		}
		return val;
	}

	/**
	 * 生成订单号，该值在商户端应保持唯一
	 * 适合生成比较长的 订单号，如果比较段，可以把 年 月 这些 去掉。。。
	 */
	public static String createOrderId(int length) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
		Date date = new Date();
		String key = dateFormat.format(date);
		//
		String mRandomStr = getCharAndNumr((length-(key.length()/2)));
		SGLog.v("mRandomStr="+mRandomStr);
		key = key + mRandomStr;
		key = key.substring(0, length);
		return key;
	}
}
